Units are the main time consumer, taking about half of time on Standard map.  Some notables:

Path generation takes 1/2 of unit movement time, several thousand calls

Naval units also take a lot of time compared to land counterparts, reserve and explore sea move is also quite high
CvUnitAI::AI_blockade is damn slow because of changes caused to plot groups I think

Path flag to avoid enemy territory adds about 10% to path finding time

New BBAI functions which need help/to check out:
CvPlot::isHasPathToEnemyCity - now rarely used, little cost.  Can replace remaining usage?
CvSelectionGroup::isHasPathToAreaPlayerCity - Check late game cost, mid game looks good
CvUnitAI::AI_pickupStranded - Now much less demanding

CvUnitAI::AI_spreadReligion and CvUnitAI::AI_spreadCorporation, now way faster ... are they still working right?


Other expensive/heavily used AI functions
CvCityAI::AI_plotValue - called repeatedly when choosing citizens
CvUnitAI::AI_pickup - can this be faster?
CvUnitAI::AI_spyMove - what are the slow parts?  lots of evaluation/pathing in CvUnitAI::AI_cityOffenseSpy?
CvPlotGroup::recalculatePlots and CvPlayer::updatePlotGroups - most time spent doing thousands of path planning calls to check plot group sizes
CvUnitAI::AI_exploreSeaMove - very slow per unit on large maps
CvUnitAI::AI_pirateBlockade - big memory allocation, loops over all plots with path finding
CvUnit::canMoveInto - called by pathValid, accounts for a little less than 1/3 of path planning time, called millions of times in late game
CvPlayerAI::AI_doDiplo - why???
CvTeamAI::AI_calculateAdjacentLandPlots


RevDCM:
Python callback can add up to 2 secs to turn times on Large maps
Python portions of the mod add 2 - 4 secs to turn times on Large maps

From car:

CvUnitAI and CvUnit:
Cache upgrade types (.2 sec)

CvTeamAI:
Cache land target? (.5 sec) - if cached, could then be used to determine whether attack stacks walk or boat
Store team members in list (check)

CvPlayer:
Cache attitude value (.5 sec) - gets up to 9% with 18 civs!!!
-> Need to recache when plots change hands?
AI_getCloseBordersAttitude

Compiler options???
Compare compile for size versus compile for speed

Default: O2 Og Default Oi Default Const Neither Oy No G7 No
Better?  O1 Ot any suitable inline


Test procedure:
1.  Load scenario save as Mongols
2.  Automate 3 turns untimed (to allow memory allocation for things not load from WB save)
3.  Automate 25 turns timed

Results:

BBAI 0.80			18m 48 sec
BBAI 0.81e			15m 17 sec
BBAI 0.81e O1		14m 40 sec
BBAI 0.81e O1 Ot	14m 25 sec
CAR v0.2			10m 10 sec
UP 1.1				13m 25 sec

war2
BBAI 0.81e O1 Ot	14m 00 sec
BBAI 0.81e O1		14m 08 sec
BBAI 0.81e O2		15m 14 sec  15m 27 sec
UP O1 Os			14m 19 sec	19m 06 sec (china goof)
UP O1 Ot			12m 45 sec
UP O2				11m 44 sec
BBAI 1.00			11m 56 sec

BBAI 0.81j O2		14m 23 sec